In diesem Kapitel betrachten wir die Grundlagen der Datenmodellierung mit E/R-Diagrammen. Das Entity-Relationship-Modell (kurz: E/R-Modell) dient dazu, einen bestimmten Ausschnitt der realen Welt zu beschreiben. Es wird im Rahmen der semantischen Datenmodellierung eingesetzt, um relevante Daten eines Systems zu strukturieren. Dieses Modell besteht aus einer grafischen Darstellung – dem E/R-Diagramm – und einer textuellen Beschreibung der darin verwendeten Elemente. Dabei konzentriert man sich auf das „Was“, also die fachlich-sachlichen Gegebenheiten, und nicht auf das „Wie“, also die technische Umsetzung. Das E/R-Modell wird in der konzeptionellen Phase der Anwendungsentwicklung eingesetzt, um Missverständnisse zwischen Anwendern und Entwicklern zu vermeiden. Später dient es als Grundlage für das Design relationaler Datenbanken, welche die gespeicherten Daten strukturiert und effizient abrufbar machen. Seit seiner Einführung hat sich das E/R-Modell als De-facto-Standard in der Datenmodellierung etabliert. Die erste Version wurde 1976 von Peter Chen vorgestellt (Chen-Notation) und findet bis heute Anwendung. 1977 erweiterte Smith das Modell um die Konzepte Generalisierung und Aggregation, um komplexere Strukturen besser abzubilden. Weitere Verbesserungen folgten Ende der 1980er Jahre durch Wong und Katz. E/R-Modelle sind in ihrer Ausdrucksstärke vergleichbar mit UML-Klassendiagrammen, konzentrieren sich jedoch ausschließlich auf die Datenstruktur – Funktionen oder Methoden werden hierbei nicht dargestellt. Bei der E/R-Modellierung mit der Chen-Notation unterscheidet man drei grundlegende Bestandteile: den Entitätstyp, die Beziehung und das Attribut. Ein Entitätstyp entspricht einer Klasse von Objekten, ähnlich wie beim klassischen Programmieren. Eine einzelne Entität ist ein konkretes Objekt (eine Tabellenzeile oder ein Datensatz). Beziehungen verknüpfen einzelne Tabellen miteinander, wie etwa welcher Mitarbeiter welche Projekte leitet. Ein Attribut beschreibt Eigenschaften einer Entität, beispielsweise Name oder Nummer – es entspricht dem vertikalen Spalteninhalt einer Tabelle. In einem Beispiel zur E/R-Modellierung mit Chen sehen wir zwei Entitäten: Mitarbeiter und Projekt. Mitarbeiter haben beispielsweise das Attribut Name, Projekte haben Attribute wie Name, Datum und Budget. Für eine eindeutige Identifikation braucht man jedoch Primärschlüssel, da Attribute wie der Name alleine nicht ausreichend eindeutig sein könnten. Zwischen diesen Entitäten besteht beispielsweise eine eins-zu-n-Beziehung: Ein Mitarbeiter kann beliebig viele Projekte leiten, aber jedes Projekt wird genau von einem Mitarbeiter geleitet. Ein Primärschlüssel ist eine minimale Attributkombination, die jede Entität eindeutig identifiziert. Theoretisch gibt es mehrere potenzielle Schlüssel – sogenannte Schlüsselkandidaten –, doch man legt sich auf genau einen Primärschlüssel fest. Praktisch wählt man oft einfache, künstliche Attribute wie Mitarbeiternummern oder generische IDs. Primärschlüssel gewährleisten Datenintegrität und spielen eine zentrale Rolle bei der Modellierung relationaler Systeme. Ein einfacher Primärschlüssel besteht aus einem einzigen Attribut, zum Beispiel einer ISBN in einer Büchertabelle. Jeder Eintrag ist eindeutig, und jede ISBN identifiziert genau einen Datensatz. Hingegen gibt es zusammengesetzte Primärschlüssel, bei denen kein einzelnes Attribut ausreicht, sondern mehrere kombiniert werden müssen, etwa Name und Geburtstag einer Person. Solche zusammengesetzten Schlüssel sind jedoch oft nur eine Notlösung; hier wäre eine eindeutige ID sinnvoller. Ein Schlüsselkandidat ist jedes Attribut oder jede Attributkombination, die geeignet ist, Datensätze eindeutig zu identifizieren. Von diesen Kandidaten wählt man genau einen als Primärschlüssel. Beispielsweise könnte man Mitarbeiter über Mitarbeiternummer oder Name eindeutig identifizieren. In der Praxis bevorzugt man jedoch die Mitarbeiternummer, da Namensgleichheiten nicht auszuschließen sind. Die Kardinalität von Beziehungen beschreibt, wie viele Entitäten eines Typs mit wie vielen Entitäten eines anderen Typs verbunden sind. Es gibt drei grundlegende Formen: eins-zu-eins, eins-zu-n und n-zu-m. Richtig modellierte Kardinalitäten sichern die Datenintegrität und spiegeln realistische Geschäftsregeln wider. Bei einer eins-zu-eins-Beziehung entspricht jedem Datensatz in Tabelle A genau ein Datensatz in Tabelle B und umgekehrt. Solche Beziehungen sind selten und oft nur aus Performance- oder Berechtigungsgründen sinnvoll. Die eins-zu-n-Beziehung ist am häufigsten anzutreffen: Ein Datensatz aus Tabelle A kann mit mehreren Datensätzen aus Tabelle B verbunden sein, während jeder Datensatz aus Tabelle B höchstens einem Datensatz aus Tabelle A zugeordnet wird. Ein realistisches Beispiel ist eine Klasse, der mehrere Schüler angehören, während jeder Schüler nur einer Klasse zugeordnet ist. Die n-zu-m-Beziehung ermöglicht, dass Datensätze aus Tabelle A mehreren Datensätzen aus Tabelle B zugeordnet sein können und umgekehrt. In relationalen Datenbanken wird diese Beziehung über eine dritte Tabelle – die Verbindungstabelle – realisiert, welche Fremdschlüssel beider Tabellen enthält. Bei einer eins-zu-eins-Beziehung wird der Primärschlüssel einer Tabelle zugleich als Fremdschlüssel und Primärschlüssel in der anderen Tabelle genutzt. Bei einer eins-zu-n-Beziehung enthält die „n“-Seite den Fremdschlüssel zur „eins“-Seite. In n-zu-m-Beziehungen wird eine separate Verbindungstabelle genutzt, die beide Primärschlüssel enthält und kombiniert. Reflexive Beziehungen, etwa die Beziehung „ist Vorgesetzter von“, erfordern ebenfalls eine separate Verbindungstabelle mit zwei Fremdschlüsseln, die beide auf dieselbe Ursprungstabelle verweisen. Im universitären Kontext illustriert ein Beispiel-Entity-Relationship-Modell die Beziehungen zwischen Studenten, Vorlesungen und Professoren. Studierende hören Vorlesungen (n\:m), Professoren halten Vorlesungen (eins-zu-n). Diese Struktur verdeutlicht, wie realistische Zusammenhänge modelliert werden können. Schwache Entitäten können nicht allein identifiziert werden, sondern sind auf eine zugehörige starke Entität angewiesen. Sie erhalten einen zusammengesetzten Primärschlüssel, bestehend aus einem Fremdschlüssel der starken Entität und eigenen Attributen. Sie sind strukturell abhängig und existieren nicht unabhängig. Neben der Chen-Notation gibt es weitere E/R-Notationen wie UML-Klassendiagramme, Martin-Notation (Krähenfußnotation), Idefix, Bachman-Notation und die (min, max)-Notation. Jede Notation besitzt spezifische Merkmale und eignet sich für unterschiedliche Anwendungsszenarien. In der praktischen Umsetzung erfolgt die Modellierung etwa mit MariaDB und PHP-MyAdmin. Über die grafische Oberfläche lassen sich Tabellenbeziehungen darstellen und bearbeiten. Für das Einrichten von Beziehungen gelten Voraussetzungen wie Primärschlüssel, Fremdschlüssel und Indexierung der Spalten. Beim Anlegen von Fremdschlüsseln in MariaDB können Verhaltensweisen wie On-Delete und On-Update definiert werden. Cascade bewirkt automatische Weitergabe von Änderungen oder Löschungen, Set-Null setzt Fremdschlüsselwerte auf null, und No-Action bzw. Restrict verhindern Änderungen, wenn dadurch Fremdschlüsselbeziehungen verletzt würden. Diese Optionen sichern die referenzielle Integrität und erleichtern die Verwaltung komplexer Datenstrukturen.